<!-- 动态路由的页面 -->
<template>
  <div id="aCoursesList" class="bg-fa of">
    <!-- 课程详情 开始 -->
    <section class="container">
      <!-- 课程所属分类 开始 -->

      <section class="path-wrap txtOf hLh30">
        <a href="#" title class="c-999 fsize14">首页</a> \
        <a href="/course" title class="c-999 fsize14">课程列表</a>\
        <span class="c-333 fsize14">{{ courseInfo.subjectLevelOne }}</span
        >\
        <span class="c-333 fsize14">{{ courseInfo.subjectLevelTwo }}</span>
      </section>
      <!-- /课程所属分类 结束 -->

      <!-- 课程基本信息 开始 -->
      <div>
        <article class="c-v-pic-wrap" style="height: 357px">
          <section id="videoPlay" class="p-h-video-box">
            <img
              :src="courseInfo.cover"
              :alt="courseInfo.title"
              class="dis c-v-pic"
              style="width: 640px; height: 357px"
            />
          </section>
        </article>

        <aside class="c-attr-wrap">
          <section class="ml20 mr15">
            <h2 class="hLh30 txtOf mt15">
              <span class="c-fff fsize24">{{ courseInfo.title }}</span>
            </h2>

            <section class="c-attr-jg">
              <span class="c-fff">价格：</span>

              <b class="c-yellow" style="font-size: 24px"
                >￥{{ courseInfo.price }}</b
              >
            </section>

            <section class="c-attr-mt c-attr-undis">
              <span class="c-fff fsize14"
                >主讲： {{ courseInfo.teacherName }}&nbsp;&nbsp;&nbsp;</span
              >
            </section>

            <section class="c-attr-mt of">
              <span class="ml10 vam">
                <span
                  v-if="!this.iscollected"
                  class="star"
                  style="text-shadow: 0 0 2px #ffd700; color: white"
                  >★★★</span
                >
                <span
                  v-if="this.iscollected"
                  class="star"
                  style="text-shadow: 0 0 2px #ffd700; color: #ffd700"
                  >★★★</span
                >
                <!-- <em class="icon18 scIcon" /> -->
                <a
                  class="c-fff vam"
                  title="收藏"
                  href="#"
                  @click="collectCourse"
                  >收藏</a
                >
              </span>
            </section>

            <section class="c-attr-mt">
              <template v-if="this.isbuyCourse == true || courseInfo.price==0">
                <a href="#" title="立即观看" class="comm-btn c-btn-3">已购买</a>
              </template>
              <template v-else>
                <a href="#" title="立即支付" style="color: red;"
                  @click="createOrder(courseInfo.id, user.id)" class="comm-btn c-btn-3">立即支付</a>
              </template>
            </section>

          </section>
        </aside>

        <aside class="thr-attr-box">
          <ol class="thr-attr-ol clearfix">
            <li>
              <p>&nbsp;</p>

              <aside>
                <span class="c-fff f-fM">购买数</span>

                <br />

                <h6 class="c-fff f-fM mt10">{{ courseInfo.buyCount }}</h6>
              </aside>
            </li>

            <li>
              <p>&nbsp;</p>

              <aside>
                <span class="c-fff f-fM">课时数</span>

                <br />

                <h6 class="c-fff f-fM mt10">{{ courseInfo.lessonNum }}</h6>
              </aside>
            </li>

            <li>
              <p>&nbsp;</p>

              <aside>
                <span class="c-fff f-fM">浏览数</span>
                <br />
                <h6 class="c-fff f-fM mt10">{{ courseInfo.viewCount }}</h6>
              </aside>
            </li>
          </ol>
        </aside>
        <div class="clear" />
      </div>
      <!-- /课程基本信息 结束 -->

      <div class="mt20 c-infor-box">
        <article class="fl col-7">
          <section class="mr30">
            <div class="i-box">
              <div>
                <section id="c-i-tabTitle" class="c-infor-tabTitle c-tab-title">
                  <a name="c-i" class="current" title="课程详情">课程详情</a>
                </section>
              </div>
              <article class="ml10 mr10 pt20">
                <!-- 课程详情介绍 开始 -->
                <div>
                  <h6 class="c-i-content c-infor-title">
                    <span>课程介绍</span>
                  </h6>

                  <div class="course-txt-body-wrap">
                    <section class="course-txt-body">
                      <!-- 将内容中的html翻译过来 -->
                      <p v-html="courseInfo.description"></p>
                    </section>
                  </div>
                </div>
                <!-- /课程详情介绍 结束 -->

                <!-- 课程大纲 开始-->

                <div class="mt50">
                  <h6 class="c-g-content c-infor-title">
                    <span>课程大纲</span>
                  </h6>
                  <section class="mt20">
                    <div class="lh-menu-wrap">
                      <menu id="lh-menu" class="lh-menu mt10 mr10">
                        <ul>
                          <!-- 课程章节目录 -->
                          <li
                            v-for="chapter in chapterVideoList"
                            :key="chapter.id"
                            class="lh-menu-stair"
                          >
                            <a
                              :title="chapter.title"
                              href="javascript: void(0)"
                              class="current-1"
                            >
                              <em class="lh-menu-i-1 icon18 mr10" />{{
                                chapter.title
                              }}
                            </a>
                            <!-- 章节内的小节栏 -->
                            <ol class="lh-menu-ol" style="display: block">
                              <li
                                v-for="video in chapter.children"
                                :key="video.id"
                                class="lh-menu-second ml30"
                              >
                                <a hre="#" title>
                                  <span v-if="video.free === true" class="fr">
                                    <i class="free-icon vam mr10">免费试听</i>
                                  </span>
                                  <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em
                                  >{{ video.title }}
                                </a>
                              </li>
                            </ol>
                          </li>
                        </ul>
                      </menu>
                    </div>
                  </section>
                </div>
                <!-- /课程大纲 结束 -->
              </article>
            </div>
          </section>
        </article>
        <aside class="fl col-3">
          <div class="i-box">
            <!-- 主讲讲师 开始-->
            <div>
              <section class="c-infor-tabTitle c-tab-title">
                <a title href="javascript:void(0)">主讲讲师</a>
              </section>
              <section class="stud-act-list">
                <ul style="height: auto">
                  <li>
                    <div class="u-face">
                      <a
                        :href="'/teacher/' + courseInfo.teacherId"
                        target="_blank"
                      >
                        <img
                          :src="courseInfo.avatar"
                          width="50"
                          height="50"
                          alt
                        />
                      </a>
                    </div>
                    <section class="hLh30 txtOf">
                      <a
                        :href="'/teacher/' + courseInfo.teacherId"
                        class="c-333 fsize16 fl"
                        target="_blank"
                        >{{ courseInfo.teacherName }}</a
                      >
                    </section>
                    <section class="hLh20 txtOf">
                      <span class="c-999">{{ courseInfo.intro }}</span>
                    </section>
                  </li>
                </ul>
              </section>
            </div>

            <!-- /主讲讲师 结束 -->
          </div>
        </aside>

        <div class="clear" />
      </div>
    </section>
    <!-- /课程详情 结束 -->
    <div class="mt50 commentHtml" style="width:1000px; translateX(300px) ">
      <div>
        <h6 class="c-c-content c-infor-title" id="i-art-comment">
          <span class="commentTitle">课程评论</span>
        </h6>

        <section class="lh-bj-list pr mt20 replyhtml">
          <ul>
            <li class="unBr">
              <aside class="noter-pic">
                <img
                  width="50"
                  height="50"
                  class="picImg"
                  src="~/assets/img/avatar-boy.gif"
                />
              </aside>

              <div class="of">
                <section class="n-reply-wrap">
                  <fieldset>
                    <textarea
                      name=""
                      v-model="comment.content"
                      placeholder="输入您要评论的文字"
                      id="commentContent"
                    ></textarea>
                  </fieldset>

                  <p class="of mt5 tar pl10 pr10">
                    <span class="fl"
                      ><tt
                        class="c-red commentContentmeg"
                        style="display: none"
                      ></tt
                    ></span>

                    <input
                      type="button"
                      @click="addComment()"
                      value="回复"
                      class="lh-reply-btn"
                    />
                  </p>
                </section>
              </div>
            </li>
          </ul>
        </section>

        <section class="">
          <section class="question-list lh-bj-list pr">
            <ul class="pr10">
              <li v-for="(comment, index) in data.items" v-bind:key="index">
                <aside class="noter-pic">
                  <img
                    width="50"
                    height="50"
                    class="picImg"
                    :src="comment.avatar"
                  />
                </aside>

                <div class="of">
                  <span class="fl">
                    <font class="fsize12 c-blue"> {{ comment.nickname }}</font>

                    <font class="fsize12 c-999 ml5">评论：</font></span
                  >
                </div>

                <div class="noter-txt mt5">
                  <p>{{ comment.content }}</p>
                </div>

                <div class="of mt5">
                  <span class="fr"
                    ><font class="fsize12 c-999 ml5">{{
                      comment.gmtCreate
                    }}</font></span
                  >
                </div>
              </li>
            </ul>
          </section>
        </section>

        <!-- 公共分页 开始 -->

        <div class="paging">
          <!-- undisable这个class是否存在，取决于数据属性hasPrevious -->

          <a
            :class="{ undisable: !data.hasPrevious }"
            href="#"
            title="首页"
            @click.prevent="gotoPage(1)"
            >首</a
          >

          <a
            :class="{ undisable: !data.hasPrevious }"
            href="#"
            title="前一页"
            @click.prevent="gotoPage(data.current - 1)"
            >&lt;</a
          >

          <a
            v-for="page in data.pages"
            :key="page"
            :class="{
              current: data.current == page,
              undisable: data.current == page,
            }"
            :title="'第' + page + '页'"
            href="#"
            @click.prevent="gotoPage(page)"
            >{{ page }}</a
          >

          <a
            :class="{ undisable: !data.hasNext }"
            href="#"
            title="后一页"
            @click.prevent="gotoPage(data.current + 1)"
            >&gt;</a
          >

          <a
            :class="{ undisable: !data.hasNext }"
            href="#"
            title="末页"
            @click.prevent="gotoPage(data.pages)"
            >末</a
          >

          <div class="clear" />
        </div>

        <!-- 公共分页 结束 -->
      </div>
    </div>
  </div>
</template>

<script>
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);
import userApi from "@/api/login";
import order from "@/api/order";
import course from "@/api/course";
import comment from "@/api/comment";
import cookie from "js-cookie";
import { Message } from "element-ui";
export default {
  // asyncData这个方法是组件一加载完毕就优先执行这个方法
  asyncData({ params, error }) {
    // 根据课程id获取课程信息，调用接口赋值   params.id是url里面的id
    return course.getById(params.id).then((response) => {
      // console.log(response);
      return {
        courseInfo: response.data.data.course,
        chapterVideoList: response.data.data.chapterVoList,
        // 根据课程id查询评论信息
        courseId: params.id,
      };
    });
  },

  data() {
    // 课程详情页面渲染所需要的数据
    return {
      user: {
        avatar: "",
        nickname: "",
        sex: "1",
        mobile: "",
        password: "",
        id: "",
      },
      // 课程id
      courseId: "",
      // 评论分页所需要的数据
      data: {},
      page: 1,
      limit: 4,
      total: 10,
      // 评论
      comment: {
        content: "",
        courseId: "",
      },
      // 课程信息，对应java里面的实体类：CourseWebVo
      courseInfo: {},
      // 章节小节
      chapterVideoList: [],
      // 判断该课程是否被购买，可以去course_member表(新加的表)里面判断，根据用户id和课程id进行判断
      isbuyCourse: false,
      iscollected: false,
    };
  },
  created() {
    this.initUserInfo();

    // 判断课程是否已经被收藏
    if (cookie.get("loginInfo") != null) {
      this.checkCollect(); // 获取当前用户是否收藏过该课程的信息
    }
    this.initComment();
    // 判断课程是否已经被购买
    if(this.$route.params.id!=null){
      console.log(this.$route.params.id);
    }


  },
  methods: {
    initUserInfo() {
      userApi.getLoginInfo().then((response) => {
        this.user = response.data.data.ucenterMember;
        this.user.password = "";
        this.user.sex = this.user.sex.toString();
        // 第一个传入的是课程id,第二个传入的是用户id
        this.selectAuthority(this.courseInfo.id, this.user.id)
      });
    },
    // 点击立即购买按钮创建订单
    createOrder(courseId, userId) {
      if(userId===""){
        this.$confirm('你还没有登录哦，点击确定按钮前往登录', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              this.$router.push({ path: "/login/"});
            })
      }else{
        order.createOrder(courseId, userId).then((response) => {
        if (response.data.success) {
          this.$router.push({ path: "/order/" + response.data.data.orderId });
        }
        if(response.data.code==1){
          this.$confirm('你已经创建过该课程的订单信息，请前往我的订单页面支付', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              this.$router.push({ path: "/my/"});
            })
        }
      });
      }
    },
    collectCourse() {
      if (cookie.get("loginInfo") != null) {
        // 收藏事件
        if (this.iscollected) {
          // 已经收藏，弹出提示
          Message({
            message: "您已收藏，若要取消收藏请前往个人中心-我的收藏",
            type: "info",
            duration: 1500,
          });
        } else {
          course.collectCourse(this.courseInfo.id).then((response) => {
            if (response.data.success) {
              this.iscollected = true; //如果已收藏则设置未false，反之true
              // 友好提示
              Message({
                message: "收藏成功",
                type: "success",
                duration: 1000,
              });
            }
          });
        }
      } else {
        // 未登录提示
        Message({
          message: "亲，您尚未登录哦~",
          type: "warning",
          duration: 1000,
        });
      }
    },
    checkCollect() {
      course.checkCollect(this.courseInfo.id).then((response) => {
        if (response.data.success) {
          if (JSON.stringify(response.data.data.count) != 0)
            // 已经收藏了
            this.iscollected = true;
        }
      });
    },
    // 评论模块
    initComment() {
      comment
        .getPageList(this.page, this.limit, this.courseId)
        .then((response) => {
          this.data = response.data.data;
        });
    },
    addComment() {
      this.comment.courseId = this.courseId;
      this.comment.teacherId = this.courseInfo.teacherId;
      comment.addComment(this.comment).then((response) => {
        if (response.data.success) {
          this.comment.content = "";
          // 重新加载评论区
          this.initComment();
        }
      });
    },
    // 点击评论翻页事件
    gotoPage (page) {
      comment.getPageList(page, this.limit, this.courseId).then((response) => {
        this.data = response.data.data;
      });
    },
     // 根据课程id和用户id判断该用户是否具有操作权限
     selectAuthority(courseId, memberId) {
      course.selectAuthority(courseId, memberId).then((response) => {
        if (response.data.success) {
          if (response.data.code === 1) {
            this.$confirm('你还没有登录哦，点击确定按钮前往登录', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              this.$router.push({ path: "/login/"});
            })
          }
          if (response.data.code === 2) {
            // 立即支付按钮显示出来
            this.isbuyCourse=false;
          }
          if (response.data.code === 3) {
            // 点击观看按钮显示出来
            this.isbuyCourse=true;
          }
        }
      })
    }
  },
};
</script>

<style>
.commentHtml {
  translate: 200px;
}
</style>
